﻿using Polaris.Domain.Model.Dto.Notes.Request;
using Polaris.Domain.Model.Dto.Notes.Response;
using Polaris.Domain.Model.Dto.Permissions.Response;
using Polaris.Domain.Model.Entity.Base;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Polaris.Domain.Interfaces.Admin
{
    public interface INotes
    {
        /// <summary>
        /// 创建笔记
        /// </summary>
        /// <param name="create"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        Task CreateNotes(CreateNotesInfoRequest create, Guid? userId);

        /// <summary>
        /// 获取闲书列表
        /// </summary>
        /// <param name="quyer"></param>
        /// <returns></returns>
        Task<PaginationInfo<NotesListResponse>> GetNotesList(NotesQueryRequest quyer);

        /// <summary>
        /// 根据获取闲书内容
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<string> GetNotesContentById(string id);

        /// <summary>
        /// 根据获取闲书
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<NotesInfoResponse> GetNotesById(string id);

        /// <summary>
        /// 修改闲书
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task UpdateNotes(NotesInfoResponse update, Guid? userId);

        /// <summary>
        /// 删除闲书
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task DeleteById(string id,Guid? userId);
    }
}
